package FileIO.InputStream;

import java.io.FileInputStream;
import java.io.IOException;

/**
 * @Author: ylc
 * @Description:字节输入流-单字节读取
 * @Date Created in 2022-04-25 18:43
 */
public class InputDemo1 {
    public static void main(String[] args) throws IOException {
        /*
            java.io.InputStream:字节输入流
                此抽象类是表示字节输入流的所有类的超类。
            构造方法：
                FileInputStream(String name)
                FileInputStream(File file)
            参数:读取文件的数据源
                String name:文件的路径
                File file:文件

             int read()从输入流中读取数据的下一个字节。
             int read(byte[] b) 从输入流中读取一定数量的字节，并将其存储在缓冲区数组 b 中。
             void close() 关闭此输入流并释放与该流关联的所有系统资源。
         */
        FileInputStream fis = new FileInputStream("Study04\\a.txt");
        //int read()读取文件中的一个字节并返回,读取到文件的末尾返回-1
        /*
            使用字节流读取中文会出现乱码
                GBK:中文字符占2个字节
                utf-8：中文占3个字节
        */
        int len1 = 0; //记录读取到的字节
        while((len1 = fis.read())!=-1){
            System.out.print((char)len1);
        }

        //释放资源
        fis.close();
    }
}
